{ "no-domain-init", 0, NULL, 'D' },
{ "entry-nb", 1, NULL, 'E' },
{ "pid-file", 1, NULL, 'F' },
+ { "event", 1, NULL, 'e' },
{ "help", 0, NULL, 'H' },
{ "no-fork", 0, NULL, 'N' },
{ "output-pid", 0, NULL, 'P' },
{ NULL, 0, NULL, 0 } };
extern void dump_conn(struct connection *conn);
+int dom0_event = 0;
int main(int argc, char *argv[])
{
case 'W':
quota_nb_watch_per_domain = strtol(optarg, NULL, 10);
break;
+ case 'e':
+ dom0_event = strtol(optarg, NULL, 10);
+ break;
}
}
if (optind != argc)
void dtrace_io(const struct connection *conn, const struct buffered_data *data, int out);
extern int event_fd;
+extern int dom0_event;
/* Map the kernel's xenstore page. */
void *xenbus_map(void);
/* Open a pipe for signal handling */
void init_pipe(int reopen_log_pipe[2]);
+xc_gnttab **xcg_handle;
+
#endif /* _XENSTORED_CORE_H */
/*
#include <xen/grant_table.h>
static xc_interface **xc_handle;
-static xc_gnttab **xcg_handle;
+xc_gnttab **xcg_handle;
static evtchn_port_t virq_port;
xc_evtchn *xce_handle = NULL;
evtchn_port_t xenbus_evtchn(void)
{
- return -1;
+ return dom0_event;
}
void *xenbus_map(void)
{
- return NULL;
+ return xc_gnttab_map_grant_ref(*xcg_handle, 0,
+ GNTTAB_RESERVED_XENSTORE, PROT_READ|PROT_WRITE);
}
void unmap_xenbus(void *interface)
{
+ xc_gnttab_munmap(*xcg_handle, interface, 1);
}